package JavaCode.contest.weekly.n0_200.n161;

import java.util.HashMap;
import java.util.Map;

/**
 * author:fangjie
 * time:2019/11/3
 */
public class N2 {
    public int numberOfSubarrays(int[] nums, int k) {
        int res=0;
        Map<Integer,Integer> map=new HashMap<>();
        map.put(0,1);
        int cnt=0;
        for (int i:nums)
        {
            cnt+=i%2;
            res+=map.getOrDefault(cnt-k,0);
            map.put(cnt,map.getOrDefault(cnt,0)+1);
        }
        return res;
    }
}
/*
给你一个整数数组 nums 和一个整数 k。

如果某个子数组中恰好有 k 个奇数数字，我们就认为这个子数组是「优美子数组」。

请返回这个数组中「优美子数组」的数目。



示例 1：

输入：nums = [1,1,2,1,1], k = 3
输出：2
解释：包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。
示例 2：

输入：nums = [2,4,6], k = 1
输出：0
解释：数列中不包含任何奇数，所以不存在优美子数组。
示例 3：

输入：nums = [2,2,2,1,2,2,1,2,2,2], k = 2
输出：16


提示：

1 <= nums.length <= 50000
1 <= nums[i] <= 10^5
1 <= k <= nums.length
 */
